Among UsのMod開発 Getting Started
https://scrapbox.io/files/61898498aa238a001e610c91.jpg
仲間内でAmongUsをやる機会があって、案の定Mod開発に興味を持ちました。
公式にMod開発方法が提供されているわけでもありません。
この方法に従って、開発環境を整えてみようと思います。
大まかな手順
BepInExのインストール
Reactormodのインストール
.NETSDKのインストール
Reactor.Templateのインストール
Reactorを利用してプロジェクトの作成
IDEで修正・ビルド
Modの設置と動作確認
BepInExのインストール
それをAmongUsのMod開発用にForkされたのが今回インストールするものです。
BepInEx-*.*.*-reactor.*.zip をダウンロードします
この記事を書いている時点では、BepInEx-6.0.0-reactor.23.zip
https://scrapbox.io/files/61897689d15cbf002298d5dd.png
ダウンロードしたzipファイルを見つけます
https://scrapbox.io/files/618976ee7bc9450020ec75bf.png
https://scrapbox.io/files/61897741d8b6f2001eaa4802.jpg
ダウンロードしたzipの中身をAmongUsに展開します
https://scrapbox.io/files/6189778ca8bcc9001da95bdf.jpg
AmongUsのフォルダはSteamから開けます
https://scrapbox.io/files/618978e2bd89b9002021ce09.jpg
AmongUsを一度起動し、起動が完了したら閉じます
初回はいつもより時間がかかる可能性があります
AmongUsのフォルダに設置したBepInExフォルダの中身が下記の画像のようになっていることを確認する
https://scrapbox.io/files/61897865f15f2c001df2c25f.jpg
これでBepInExのインストールは完了です
Reactormodのインストール
BepInExがMod開発と組み込みの全体的なフレームワークだったのに対し、
ReactorはAmongUsを改造して使いやすいAPIを開発者に提供するためのプラグインです。
フレームワークだけではまだAmongUsとは会話できないけど、
Reactorを入れることで話しやすい言葉で会話できるようになるイメージ?わからんけど。
Reactor.dllをダウンロードします
https://scrapbox.io/files/618979a3a2e867001e654433.jpg
.dllファイルなので警告がでるかもしれませんが、単体では動作しないので問題ありません
ダウンロードしたReactor.dllをAmongUsフォルダ > BepInEx > plugins に移動します。
https://scrapbox.io/files/61897a3f2e6d540023455ce8.jpg
AmongUsを起動し、Mod関連の表示があることを確認します
https://scrapbox.io/files/61897a7013cbb1001ddf0aef.jpg
僕の場合は、
v2021.6.30s
Reactor 1.0.0-rc.1
BepInEx: 6.0.0-reactor.23
と表示されています
これでRactorのインストールは完了です。
.NETSDKのインストール
.NETはWindowsとC#で有名なフレームワークです。SDKはSoftware Development Kitのことです。
Mod開発しようとしているということは少なからず開発の知識があるということで、
あまり知らない人でも名前くらいは知っているはずですね。
Windowsの欄にあるインストーラをダウンロードします
僕の場合はx64ですね
https://scrapbox.io/files/61897bdb01352f001d1f6f7b.jpg
ダウンロードが終わったら起動してインストールします
https://scrapbox.io/files/61897bf1aa238a001e60f707.jpg
https://scrapbox.io/files/61897bfadafd430023b96c91.jpg
インストールが終わったら、インストールできていることを確認します
$ dotnet --info
https://scrapbox.io/files/61897c1a11d9f4001dd0f35c.jpg
Reactor.Templateのインストール
Reactor.Templateは先にインストールしているReactormodと連携できるModを開発するためのプロジェクトのひな形です。
これがあるだけで開発着手までの手間がいくつかスキップできます。
$ dotnet new --install Reactor.Template
https://scrapbox.io/files/61898011b38f87001f1c094e.jpg
https://scrapbox.io/files/618980228629040020a1266d.jpg
インストールできていることを確認します
$ dotnet new reactor -h
https://scrapbox.io/files/6189804b559102001df48e4c.jpg
Reactorを利用してプロジェクトの作成
Mod開発のためのプロジェクトを作ります。
ひな形としてReactor.Templateを使います。
プロジェクトの親フォルダとなるフォルダを作っておきます。
僕は開発プロジェクトは制約がない限り、D:\project配下に作っていて、今回は自分のプロジェクトでAmongUsのMod開発なので下記のようなフォルダを作っておきました
https://scrapbox.io/files/618980d263246d001d55e9e6.jpg
作成した親フォルダでコンソールを開き、プロジェクトを作成します
Shiftを押したまま親フォルダで右クリックすれば、「PowerShellをここで開く」等があるので、好みのコンソール・ターミナルでコマンドを実行します
$ dotnet new reactor -n ModExperiment
https://scrapbox.io/files/6189818304a1a5001df7038a.jpg
-n はプロジェクト名を指定するためのオプションです
指定した名前のフォルダができていることを確認します
https://scrapbox.io/files/618981cdf15f2c001df2f28c.jpg
AmongUsのフォルダにパスを通しておきます
https://scrapbox.io/files/61898228a2e867001e6562c6.jpg
細かい作業内容は飛ばします
IDEで修正・ビルド
僕はC#はRiderで書いているので、Riderでの手順です。
https://scrapbox.io/files/6189828a04a1a5001df70629.jpg
IDEで.csprojを開きます
https://scrapbox.io/files/618982be1725570022d32261.jpg
先ほどdotnet reactorで作ったフォルダ > ModExperiment にあります
必要があればプロジェクトを修正します
今回は必要ないですが、今後の開発のために一応手順を
https://scrapbox.io/files/6189832a2011ea0023c619df.jpg
プロジェクト > Edit > Edit *.csproj を選択します
https://scrapbox.io/files/6189836211d9f4001dd0ffa8.jpg
Descriptionが説明、Auhtorが開発者です
Buildします
右上の金づちアイコンです
https://scrapbox.io/files/6189838b95d8da001df5fb3d.jpg
https://scrapbox.io/files/618983a2f15f2c001df2f8c8.jpg
成功ダイアログが出ればOK
Modの設置と動作確認
ビルドされたdllをModフォルダに設置し、動作を確認します。
といいつつ、Buildした時点でModフォルダに設置されているはずです。
Among Us > BepInEx > plugins > ModExperiment.dllが存在することを確認
AmongUsを起動し、フリープレイに入ると、名前が「:>」になっているはずです
https://scrapbox.io/files/61898498aa238a001e610c91.jpg
つまり、buildしたModは名前を変えるModだったわけです
おわり
どんなAPIが用意されているのかはまだ見ていませんが、
これでMod開発、利用できる用意ができました。
あんなことやこんなことができるかもですね、たのしみ!
更新履歴